﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GUESTSMANAGEMENT.Controller
{
    public class Event
    {
        //método que adiciona uma novo usuário
        public static void addEvent(gmevent obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                context.AddTogmevent(obj);
                context.SaveChanges();
            }
        }


        //método que atualiza um usuário
        public static void updateEvent(gmevent obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                gmevent gmevent = context.gmevent.Where(evento => evento.CDEVENT == obj.CDEVENT).FirstOrDefault();
                context.ApplyPropertyChanges("gmevent", obj);
                context.SaveChanges();

            }
        }

        //método que pega um usuário pelo Id
        public static gmevent getByEvent(int id)
        {
            //seta a usuário
            gmevent objEvent = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                objEvent =
                (from evento in context.gmevent
                 where evento.CDEVENT == id
                 select evento).FirstOrDefault();
            }
            return objEvent;
        }

        public static gmevent getByEventDate(DateTime date)
        {
            //seta a usuário
            gmevent objEvent = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                objEvent =
                (from evento in context.gmevent
                 where evento.DTEVENT == date
                 select evento).FirstOrDefault();
            }
            return objEvent;
        }



        //método que retorna uma lista de usuário.
        public static List<gmevent> getGridList()
        {
            //seta a variável lista            
            List<gmevent> lista = null;

            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                IQueryable<gmevent> query =
                from evento in context.gmevent
                orderby  evento.DTEVENT descending 
                select evento;
                lista = query.ToList();
            }
            return lista;
        }

        //Retorna os dados do usuário por Id.
        public static gmevent RetornarEvent(int id)
        {
            gmevent evento = getByEvent(id);
            return evento;
        }


        //método para deletar usuário.
        public static void deletEvent(gmevent obj)
        {
            using (guestsmanagementEntities context = new guestsmanagementEntities())
            {
                //verifica se o objeto a ser alterado existe
                gmevent gmevent = context.gmevent.Where(evento => evento.CDEVENT == obj.CDEVENT).FirstOrDefault();

                //caso o objeto exista, apaga o objeto
                if (gmevent != null)
                {
                    //apaga o objeto
                    context.DeleteObject(gmevent);

                    //salva as alterações
                    context.SaveChanges();
                }
            }
        }
    }
}
